實驗:Dijkstra 路由計算器

目標 🎯

  • 任務: 找出從來源伺服器 `S` 到所有其他伺服器的最佳路徑。
  • 輸出內容: 對於每台伺服器 `i`,你必須計算:
    • 總延遲: 從 `S` 到 `i` 的最小成本(最短路徑)。
    • 下一跳: 此最短路徑上的第一台伺服器。
  • 範例: 若從 `S` 到 `D` 的最佳路徑為 `S -> A -> B -> D`,則 **下一跳** 為 `A`。

網路結構 💾

我們將使用 鄰接串列 來儲存網路結構。
  • 伺服器是 節點
  • 連接為 雙向邊
  • 延遲為 正權重
// 連結:0-1 (10毫秒),0-2 (3毫秒)
adj = [
0:[(1, 10), (2, 3)],
1:[(0, 10)],
2:[(0, 3)],
...
]

輸出格式 ⚙️

你必須輸出 `V` 行,每一行 `i` 對應伺服器 `i`。

  • [延遲] [下一跳]

    針對可達的節點。

  • 0 -1

    若該節點即為來源 `S` 本身。

  • -1 -1

    若該節點無法從 `S` 到達。